Ultimamente tenho mergulhado em JSI e C e, como resultado, consegui construir um pequeno pacote chamado react-native-lz4. É uma biblioteca para compactação rápida de arquivos em React Native usando o algoritmo LZ4 escrito em C.
Ainda é experimental, pois ainda estou aprimorando o tratamento de erros e estendendo sua API, mas já pode ser usado (com cautela!)
Pacote: https://github.com/mateoguzmana/react-native-lz4
Você pode aprender mais sobre o LZ4 em seu site: https://lz4.org/
O pacote suporta arquiteturas antigas e novas e atualmente expõe duas funções principais para compactar e descompactar qualquer tipo de arquivo.
Exemplo básico:
import { compressFile, decompressFile } from 'react-native-lz4'; function onProgress(processedSize: number, totalSize: number) { // e.g. { processedSize: 50, totalSize: 100, progress: '50%' } console.log({ processedSize, totalSize, progress: `${Math.round((processedSize / totalSize) * 100)}%`, }); } const compressionResult = await compressFile( 'path/to/file', 'path/to/output', onProgress ); const decompressionResult = await decompressFile( 'path/to/file', 'path/to/output', onProgress ); console.log(compressionResult); // { success: true, message: 'File compressed successfully', originalSize: 100, finalSize: 50 } console.log(decompressionResult); // { success: true, message: 'File decompressed successfully', originalSize: 50, finalSize: 100 }
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3